;Assembler header file for FileInfo
;written by DefMod (Dec 31 2005) on Sat Dec 31 14:07:19 2005
;Jonathan Coxhead, jonathan@doves.demon.co.uk, 5 Sept 1995

        [       :LNOT: :DEF: FileInfo_Hdr
        GBLS    FileInfo_Hdr

        [       :LNOT: :DEF: Get_Types
        GBLS    Get_Types
        ]
        [       :LNOT: :DEF: Types_Hdr
Get_Types                       SETS    "GET oslib/Types.Hdr"
        |
Get_Types                       SETS    ""
        ]
        $Get_Types

        [       :LNOT: :DEF: Get_Toolbox
        GBLS    Get_Toolbox
        ]
        [       :LNOT: :DEF: Toolbox_Hdr
Get_Toolbox                     SETS    "GET oslib/Toolbox.Hdr"
        |
Get_Toolbox                     SETS    ""
        ]
        $Get_Toolbox

        [       :LNOT: :DEF: Get_Window
        GBLS    Get_Window
        ]
        [       :LNOT: :DEF: Window_Hdr
Get_Window                      SETS    "GET oslib/Window.Hdr"
        |
Get_Window                      SETS    ""
        ]
        $Get_Window

;Symbols for constants
Class_FileInfo                  *       &82AC0
Error_FileInfoTasksActive       *       &80B200
Error_FileInfoAllocFailed       *       &80B201
Error_FileInfoShortBuffer       *       &80B202
Error_FileInfoNoSuchTask        *       &80B211
Error_FileInfoNoSuchMethod      *       &80B212
Error_FileInfoNoSuchMiscOpMethod *       &80B213
FileInfo_GenerateAboutToBeShown *       &1
FileInfo_GenerateDialogueCompleted *       &2
Action_FileInfoAboutToBeShown   *       &82AC0
Action_FileInfoDialogueCompleted *       &82AC1
FileInfo_Date                   *       &82AC01
FileInfo_FileSize               *       &82AC02
FileInfo_FileName               *       &82AC03
FileInfo_FileType               *       &82AC04
FileInfo_Modified               *       &82AC05
FileInfo_FileIcon               *       &82AC06
FileInfo_DateLabel              *       &82AC07
FileInfo_FileSizeLabel          *       &82AC08
FileInfo_ModifiedLabel          *       &82AC09
FileInfo_FileTypeLabel          *       &82AC0A

;Symbols for structure offsets and sizes
                                ^       0
                                #       Bits
FileInfo_Flags                  *       @

                                ^       0
FileInfo_Object_flags           #       FileInfo_Flags
FileInfo_Object_title           #       Toolbox_MsgReference
FileInfo_Object_title_limit     #       Int
FileInfo_Object_modified        #       Bool
FileInfo_Object_file_type       #       Bits
FileInfo_Object_file_name       #       Toolbox_MsgReference
FileInfo_Object_file_size       #       Int
FileInfo_Object_date_and_time   #       OS_DateAndTime
FileInfo_Object_reserved        #       3*Byte
FileInfo_Object_alternative_window_name #       Toolbox_StringReference
FileInfo_Object                 *       @

                                ^       0
FileInfo_ObjectTemplate         Toolbox_ResourceFileObject_MEMBERS
FileInfo_ObjectTemplate_objectflags #       FileInfo_Flags
FileInfo_ObjectTemplate_title   #       Toolbox_MsgReference
FileInfo_ObjectTemplate_title_limit #       Int
FileInfo_ObjectTemplate_modified #       Bool
FileInfo_ObjectTemplate_file_type #       Bits
FileInfo_ObjectTemplate_file_name #       Toolbox_MsgReference
FileInfo_ObjectTemplate_file_size #       Int
FileInfo_ObjectTemplate_date_and_time #       OS_DateAndTime
FileInfo_ObjectTemplate_reserved #       3*Byte
FileInfo_ObjectTemplate_alternative_window_name #       Toolbox_StringReference
FileInfo_ObjectTemplate         *       @

FileInfo_Full                   *       Toolbox_Full

                                ^       0
FileInfo_ActionAboutToBeShown_tag #       Toolbox_PositionTag
FileInfo_ActionAboutToBeShown_position *       @
FileInfo_ActionAboutToBeShown_position_top_left #       OS_Coord
                                ^       FileInfo_ActionAboutToBeShown_position
FileInfo_ActionAboutToBeShown_position_full #       FileInfo_Full
FileInfo_ActionAboutToBeShown   *       @

                                ^       0
FileInfo_ActionAboutToBeShownBlock Toolbox_ActionHeader_MEMBERS
FileInfo_ActionAboutToBeShownBlock_tag #       Toolbox_PositionTag
FileInfo_ActionAboutToBeShownBlock_position *       @
FileInfo_ActionAboutToBeShownBlock_position_top_left #       OS_Coord
                                ^       FileInfo_ActionAboutToBeShownBlock_position
FileInfo_ActionAboutToBeShownBlock_position_full #       FileInfo_Full
FileInfo_ActionAboutToBeShownBlock *       @

FileInfo_ActionDialogueCompletedBlock *       Toolbox_ActionHeaderBase


;Symbols for SWI's and SWI reason codes
XFileInfo_ClassSWI              *       &A2AC0
FileInfo_ClassSWI               *       &82AC0

XFileInfo_PostFilter            *       &A2AC1
FileInfo_PostFilter             *       &82AC1

XFileInfo_PreFilter             *       &A2AC2
FileInfo_PreFilter              *       &82AC2

FileInfo_GetWindowId            *       &0
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = file_info (Toolbox_O)
   ;  R2 = &0
   ;Exit
   ;  R0 = window (Toolbox_O)

FileInfo_SetModified            *       &1
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = file_info (Toolbox_O)
   ;  R2 = &1
   ;  R3 = modified (Bool)

FileInfo_GetModified            *       &2
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = file_info (Toolbox_O)
   ;  R2 = &2
   ;Exit
   ;  R0 = modified (Bool)

FileInfo_SetFileType            *       &3
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = file_info (Toolbox_O)
   ;  R2 = &3
   ;  R3 = file_type (Bits)

FileInfo_GetFileType            *       &4
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = file_info (Toolbox_O)
   ;  R2 = &4
   ;Exit
   ;  R0 = file_type (Bits)

FileInfo_SetFileName            *       &5
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = file_info (Toolbox_O)
   ;  R2 = &5
   ;  R3 -> file_name (String)

FileInfo_GetFileName            *       &6
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = file_info (Toolbox_O)
   ;  R2 = &6
   ;  R3 = buffer (pointer to String)
   ;  R4 = size (Int)
   ;Exit
   ;  R4 = used (Int)

FileInfo_SetFileSize            *       &7
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = file_info (Toolbox_O)
   ;  R2 = &7
   ;  R3 = file_size (Int)

FileInfo_GetFileSize            *       &8
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = file_info (Toolbox_O)
   ;  R2 = &8
   ;Exit
   ;  R0 = file_size (Int)

FileInfo_SetDate                *       &9
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = file_info (Toolbox_O)
   ;  R2 = &9
   ;  R3 -> date_and_time (OS_DateAndTime)

FileInfo_GetDate                *       &A
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = file_info (Toolbox_O)
   ;  R2 = &A
   ;  R3 = date_and_time (pointer to OS_DateAndTime)

FileInfo_SetTitle               *       &B
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = file_info (Toolbox_O)
   ;  R2 = &B
   ;  R3 -> title (String)

FileInfo_GetTitle               *       &C
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = file_info (Toolbox_O)
   ;  R2 = &C
   ;  R3 = buffer (pointer to String)
   ;  R4 = size (Int)
   ;Exit
   ;  R4 = used (Int)

        ]
        END
